package com.maowei.event;

import com.alibaba.fastjson.JSONObject;
import com.maowei.parser.RowDataCustomParser;
import lombok.Getter;

/**
 * 事件处理抽象类 子类继承实现实际业务处理
 *
 * @author maowei
 * @date 2021/8/24
 */
@Getter
public abstract class AbstractEventHandler implements IEventHandler {

    private RowDataCustomParser rowDataCustomParser;

    public AbstractEventHandler(RowDataCustomParser rowDataCustomParser) {
        if (rowDataCustomParser == null) {
            throw new RuntimeException("缺少行数据解析器 !!!");
        }
        this.rowDataCustomParser = rowDataCustomParser;
    }

    @Override
    public void handle(EventInfo eventInfo) {
        JSONObject parsedData = rowDataCustomParser.parse(eventInfo);
        doHandle(parsedData);
    }

    /**
     * 实际业务处理 解析后的数据
     *
     * @param jsonObject
     */
    public abstract void doHandle(JSONObject jsonObject);
}
